﻿using System;
using System.Collections.Generic;

namespace 序列化工具
{
    public class 数据
    {
        public string 姓名;
        public int 年龄;
        public float 身高;
        public decimal 现金;
        public bool 激活;
        public List<int> 喜欢的数字;
        public Dictionary<string, long> 电话本;
        public 子数据 子项;
        public List<子数据> 本人数据;
        public Dictionary<int, 单词> 词汇表;
    }
    public class 子数据
    {
        public int 数据编号;
        public string 数据名称;
        public float 数据值;
        public 单词 单词;
    }
    public class 单词
    {
        public string 英文;
        public string 中文;
        public List<子数据> 数据表;
    }

    internal class 测试类
    {
        static void Main(string[] args)
        {
            数据 data = new 数据()
            {
                姓名 = "张三",
                年龄 = 18,
                身高 = 125f,
                现金 = 1587.254m,
                激活 = true,
                喜欢的数字 = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8 },
                电话本 = new Dictionary<string, long>() { { "小红", 13990025587 }, { "小李", 18995588855 } },
                子项 = new 子数据() { 数据值 = 7, 数据名称 = "第七", 数据编号 = 10007 },
         
                本人数据 = new List<子数据>()
                 {
                    new 子数据() { 数据值=110, 数据名称= "报警电话", 数据编号=1, 单词 = new 单词(){ 中文= "电话",英文="打电话" } },
                    new 子数据() { 数据值=119, 数据名称= "火警电话", 数据编号=2 },
                    new 子数据() { 数据值=120, 数据名称= "急救电话", 数据编号=3 }
                 },
                 词汇表 = new Dictionary<int, 单词>() 
                 {
                     {1,new 单词(){ 中文 = "好", 英文 = "good", 数据表 =new List<子数据>(){ new 子数据() { 单词=new 单词() { 数据表= new List<子数据>() { new 子数据() {  数据名称="OK" } } } } }   } },
                     {2,new 单词(){ 中文 = "坏", 英文 = "bad" } },
                 }
           

            };
            var filePath = $"Z:\\数据存储练习\\{DateTime.Now.ToString("HH-mm-ss")} 练习.txt";
            SerializationTools.Serialization(data)
             .SavaToFile(filePath);

            var TxtContent = System.IO.File.ReadAllText(filePath);
            var Instance = SerializationTools.Deserialization<数据>(TxtContent);
            Console.ReadKey();
            /*

             
             */
        }
    }
}
